#ifndef H_PUP_TIME_H
#define H_PUP_TIME_H

#include <stdbool.h>
#include <stdint.h>

typedef uint64_t pup_timestamp_t;

typedef struct pup_timespan {
  uint64_t nanoseconds;
} pup_timespan_t;

pup_timestamp_t pup_timestamp_now();

pup_timespan_t pup_timespan_diff(pup_timestamp_t before, pup_timestamp_t after);
pup_timespan_t pup_timespan_since(pup_timestamp_t timestamp);

static inline uint64_t pup_timespan_nanos(pup_timespan_t const* __restrict__ timespan);

#include "inlines/time.inl"

#endif /* H_PUP_TIME_H */

